001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Nov 30, 2002 005 * Time: 2:11:24 PM 006 */ 007 008 package EVolve.visualization.XYViz.ValValViz; 009 010 import EVolve.visualization.XYViz.XYVisualization; 011 import EVolve.visualization.*; 012 import EVolve.visualization.Dimension; 013 import EVolve.visualization.VizFactory.VisualizationFactory; 014 import EVolve.util.predefinedutils.VizInfo; 015 import EVolve.data.*; 016 import EVolve.Scene; 017 import EVolve.exceptions.VizInfoCreateException; 018 import EVolve.exceptions.NoDataPlotException; 019 020 import javax.swing.*; 021 import java.util.*; 022 import java.util.StringTokenizer; 023 024 public abstract class ValueValueVisualization extends XYVisualization{ 025 protected ValueDimension xAxis,yAxis; 026 protected ReferenceDimension entityIdFilter,filter2; // use to decide color of a dot 027 protected int subjectIndex; 028 protected long beginCall, endCall; 029 030 public ReferenceDimension getLinkableDimension(int dim) { 031 return null; 032 } 033 034 public void sort() { 035 try { 036 canvas.setImage(image.getImage()); 037 canvas.repaint(); 038 enableBrowseSourceMenu(); 039 } catch (NoDataPlotException e) { 040 Scene.showErrorMessage(e.getMessage()); 041 } 042 } 043 044 public void preVisualize() { 045 timeMap.clear(); 046 xOffset = -1; 047 timeMap.clear(); 048 } 049 050 public HashMap getCurrentConfigure() { 051 try { 052 HashMap configure = super.getCurrentConfigure(); 053 054 VizInfo vizInfo = new VizInfo(); 055 vizInfo.setFactory((VisualizationFactory)configure.get("Factory")); 056 vizInfo.setSubject((ElementDefinition)configure.get("Subject")); 057 058 String[] dimensionDefs = new String[dimension.length]; 059 for (int i=0; i<dimension.length; i++) { 060 dimensionDefs[i] = dimension[i].getName() ; 061 } 062 configure.put("Dimension",vizInfo.createDimension(dimensionDefs)); 063 064 return configure; 065 } catch (VizInfoCreateException e) { 066 Scene.showErrorMessage(e.getMessage()); 067 } 068 return null; 069 } 070 071 public void autoUpdateConfiguration(HashMap config) { 072 super.autoUpdateConfiguration(config); 073 074 if (config.get("BeginCall")!=null) { 075 beginCall = ((Long)(config.get("BeginCall"))).longValue(); 076 } 077 if (config.get("EndCall")!=null) { 078 endCall = ((Long)(config.get("EndCall"))).longValue(); 079 } 080 } 081 082 public void updateMenu() { 083 super.updateMenu(); 084 085 MenuElement[] menus = popup.getSubElements(); 086 String [] toBeDeleted = {"Sort"}; 087 088 for (int i=0; i<toBeDeleted.length; i++) { 089 for (int j=0; j<menus.length; j++) { 090 if (((JMenuItem)menus[j]).getText().indexOf(toBeDeleted[i]) != -1) 091 popup.remove(j); 092 } 093 } 094 } 095 096 protected void getSelection() { 097 Selection selection = Scene.getFilter().getActiveSelection(); 098 099 if (selection != null) { 100 beginCall = 0; 101 endCall = Integer.MAX_VALUE/2; 102 } 103 } 104 105 protected String getEntityUnderMouse() { 106 return null; 107 } 108 109 protected void changeOrientation() { 110 } 111 112 protected long[] findEventInterval(long startTime, long endTime) { 113 long time[] = new long[2], event[] = new long[2]; 114 time[0] = startTime; 115 time[1] = endTime; 116 event[0] = 0; 117 event[1] = Long.MAX_VALUE; 118 119 if (timeMap != null) { 120 for (int i=0; i<time.length; i++) { 121 long lastTarget = -1; 122 for (int j = 0; j< timeMap.size(); j++) { 123 long[] map = (long[])timeMap.get(j); 124 if ((lastTarget<= time[i])&&(map[0]>=time[i])) { 125 event[i] = map[1]; 126 break; 127 } 128 } 129 } 130 } 131 return event; 132 } 133 134 public Object clone() { 135 ValueValueVisualization o = null; 136 o = (ValueValueVisualization)super.clone(); 137 138 o.xAxis = (ValueDimension)xAxis.clone(); 139 o.yAxis = (yAxis == null) ? null : (ValueDimension)yAxis.clone(); 140 o.entityIdFilter = (entityIdFilter == null) ? null : (ReferenceDimension)entityIdFilter.clone(); 141 o.filter2 = (filter2 == null) ? null : (ReferenceDimension)filter2.clone(); 142 o.panelConfiguration = o.createConfigurationPanel(); 143 o.createMenu(); 144 return o; 145 } 146 }